安装schedulis模块

在安装schedulis模块前,需要先安装DSS平台

复制、解压安装包

  1. 使用已创建的 hadoop 用户将以下文件复制到需要部署的 Executor 或者 WebServer 服务器:
    • Executor 或者 WebServer 安装包
    • 项目文件根目录下的 bin/construct 目录中的数据库初始化脚本 hdp_schedulis_deploy_script.sql
  2. 将安装包解压到合适的安装目录下,譬如:/appcom/Install/AzkabanInstall, 并确认安装的根目录 /appcom 以及其下子目录的属主为 hadoop 用户, 且赋予 775 权限(/appcom/Install/AzkabanInstall/ 为默认安装目录,建议创建该路径并将其作为安装路径,可避免一些路径的修改)

初始化数据库

在 MySQL 中相应的 database 中(也可新建一个),将前面复制过来的数据库初始化脚本导入数据库

#连接 MySQL 服务端
#eg: mysql -uroot -p12345,其中,username : root, password: 12345

mysql -uUserName -pPassword -hIP --default-character-set=utf8
#创建一个 Database(按需执行)

mysql> create database schedulis;
mysql> use schedulis; 

# 初始化 Database
#eg: source hdp_schedulis_deploy_script.sql

mysql> source 脚本存放目录/hdp_schedulis_deploy_script.sql

修改配置

部署时,建议将配置文件放置统一位置(如:/appcom/config/schedulis-config/)进行管理,并将项目 bin/config 目录下的目录全部复制到新建的schedulis-config目录(, 再通过软链的方式链接至服务下的 conf 目录下的各个配置文件,方便后续的升级以及重新部署。 例如:

# Executor 服务配置软链
ln -sf /appcom/Install/AzkabanInstall/schedulis_{{version}}_exec /appcom/Install/AzkabanInstall/schedulis-exec;
ln -sf /appcom/config/schedulis-config/schedulis-exec/exec_azkaban.properties /appcom/Install/AzkabanInstall/schedulis-exec/conf/azkaban.properties;
ln -sf /appcom/config/schedulis-config/schedulis-exec/common.properties /appcom/Install/AzkabanInstall/schedulis-exec/plugins/jobtypes/common.properties;
ln -sf /appcom/config/schedulis-config/schedulis-exec/commonprivate.properties /appcom/Install/AzkabanInstall/schedulis-exec/plugins/jobtypes/commonprivate.properties;
ln -sf /appcom/config/schedulis-config/schedulis-exec/exec_plugin.properties /appcom/Install/AzkabanInstall/schedulis-exec/plugins/alerter/WebankIMS/conf/plugin.properties;

# WebServer 配置软链
ln -sf /appcom/Install/AzkabanInstall/schedulis_{{version_new}}_web /appcom/Install/AzkabanInstall/schedulis-web;
ln -sf /appcom/config/schedulis-config/schedulis-web/web_azkaban.properties /appcom/Install/AzkabanInstall/schedulis-web/conf/azkaban.properties;
ln -sf /appcom/config/schedulis-config/schedulis-web/web_plugin_ims.properties /appcom/Install/AzkabanInstall/schedulis-web/plugins/alerter/WebankIMS/conf/plugin.properties;
ln -sf /appcom/config/schedulis-config/schedulis-web/web_plugin_system.properties /appcom/Install/AzkabanInstall/schedulis-web/plugins/viewer/system/conf/plugin.properties;

为了hive、spark任务能正常执行,需要Executor所在机器安装好Hadoop、Hive、Spark,并将Hadoop、Hive、Spark的安装路径配置软链

# 配置软链
ln -sf {{HADOOP_HOME}} /appcom/Install/hadoop;
ln -sf {{HIVE_HOME}} /appcom/Install/hive;
ln -sf {{SPARK_HOME}} /appcom/Install/spark;

修改 host.properties 文件

此配置文件存放的路径请参考或者修改 ExecServer 安装包下的 bin/internal/internal-start-executor.sh 文件中的 KEY 值 hostConf
该文件记录的是 Executor 端的所有执行节点 Hostname 和 ServerId, 需保持每台执行机器上的该文件内容一致
示例:

vi /appcom/config/schedulis-config/host.properties

文件内容如下:

executor1_hostname=1
executor2_hostname=2
executor3_hostname=3

其中executor1_hostname,executor2_hostname,executor3_hostname 为Executor节点所在机器的真实主机名。

Executor Server 配置修改

执行包修改(自动化部署无需执行该步骤)

项目文件根目录下的 bin/construct 目录中任务执行依赖的包 execute-as-user ,复制到 Executor Server 的 lib 下(schedulis_xxx_exec/lib/),并且更新权限

sudo chown root execute-as-user
sudo chmod 6050 execute-as-user
conf/azkaban.properties

此配置文件是 ExecServer 的核心配置文件, 该配置文件存放在 ExecServer 安装包下的 conf 目录下,主要修改配置如下:

#项目 MySQL 服务端地址(密码用 Java base64 加密)
mysql.port=
mysql.host=
mysql.database=
mysql.user=
mysql.password=
mysql.numconnections=100

#Executor Server 默认端口为 12321,如有冲突可修改
executor.port=12321
#此 server id 请参考《1. 修改 host.properties》 中的 host.properties,改配置会在服务启动的时候自动从host.properties中拉取
executor.server.id=
#Web Sever url相关配置,port 需与 WebServer 的 conf/azkaban.properties 中的 jetty.port 一致,eg: http://localhost:8081
azkaban.webserver.url=http://webserver_ip:webserver_port
conf/global.properties

该配置文件存放在 ExecServer 安装包下的 conf 目录下,该配置文件主要存放一些 Executor 的全局属性,无需修改

plugins/jobtypes/commonprivate.properties

此配置文件存放于 ExecServer 安装包下的 plugins/jobtypes 目录下
此配置文件主要设置程序启动所需要加载的一些 lib 和 classpath

#以下四项配置指向对应组件的安装目录,请将它们修改成相应的组件安装目录
hadoop.home=
hadoop.conf.dir=
hive.home=
spark.home=

#azkaban.native.lib 请修改成 ExecServer 安装目录下 lib 的所在绝对路径
execute.as.user=true
azkaban.native.lib=
plugins/jobtypes/common.properties

此配置文件存放于 ExecServer 安装包下的 plugins/jobtypes 目录下
此配置文件主要是设置 DataChecker 和 EventChecker 插件的数据库地址,如不需要这两个插件可不用配置

#配置集群 Hive 的元数据库(密码用 Java base64 加密)
job.datachecker.jdo.option.name="job"
job.datachecker.jdo.option.url=jdbc:mysql://host:3306/db_name?useUnicode=true&characterEncoding=UTF-8
job.datachecker.jdo.option.username=[username]
job.datachecker.jdo.option.password=[password]

#配置 Schedulis 的数据库地址(密码用 Java base64 加密)
msg.eventchecker.jdo.option.name="msg"
msg.eventchecker.jdo.option.url=jdbc:mysql://host:3306/db_name?useUnicode=true&characterEncoding=UTF-8
msg.eventchecker.jdo.option.username=[username]
msg.eventchecker.jdo.option.password=[password]


#此部分依赖于第三方脱敏服务mask,暂未开源,将配置写为和job类型一样即可(密码用 Java base64 加密) 

bdp.datachecker.jdo.option.name="bdp"
bdp.datachecker.jdo.option.url=jdbc:mysql://host:3306/db_name?useUnicode=true&characterEncoding=UTF-8
bdp.datachecker.jdo.option.username=[username]
bdp.datachecker.jdo.option.password=[password]
plugins/jobtypes/linkis/plugin.properties

若用户安装了 Linkis([Linkis 插件安装](#Linkis 安装)),则修改此配置文件来对接 Linkis,该配置文件存放在 ExecServer 安装包下的 plugins/jobtypes/linkis 目录下,并配置gateway地址和token

#将该值修改为 Linkis 的gateway地址
wds.linkis.gateway.url=
#此处的token需要和Linkis管理台中已配置的token保持一致
wds.linkis.client.flow.author.user.token=
plugins/jobtypes/linkis/private.properties

若用户安装了 Linkis([Linkis 插件安装](#Linkis 安装)),该配置文件存放在 ExecServer 安装包下的 plugins/jobtypes/linkis 目录下,主要是设置 jobtype 所需的 lib 所在位置

#将该值修改为 Linkis 插件包下的 lib 目录
jobtype.lib.dir=

Web Server 配置文件修改

conf/azkaban.properties

此配置文件是 WebServer 的核心配置文件, 该配置文件存放在 WebServer 安装包下的 conf 目录下,主要修改的配置如下:

#项目 MySQL 配置(密码用 base64 加密)
database.type=mysql
mysql.port=
mysql.host=
mysql.database=
mysql.user=
mysql.password=
mysql.numconnections=100

#项目 web 端访问的端口
jetty.port=

# LDAP 登录校验开关(如不需要 LDAP 校验可关闭)
ladp.switch=false
# LDAP 地址配置
ladp.ip=ldap_ip
ladp.port=ldap_port

修改日志存放目录(按需修改)

Schedulis 项目的日志默认存放路径为 /appcom/logs/azkaban, 目录下存放的就是 Executor 和 Web 两个服务相关的日志
若选择使用默认存放路径,则需要按要求将所需路径提前创建出来, 确认文件属主为 hadoop,赋予 775 权限;若要使用自定义的日志存放路径,则需要创建好自定义路径,并修改 ExecServer 和 WebServer 安装包的以下文件:

  1. Executor 下的 bin/internal/internal-start-executor.sh 和 Web 下的 bin/internal/internal-start-web.sh 文件中的 KEY 值 logFile, 设为自定义日志存放路径, 以及在两个文件中关于 “Set the log4j configuration file” 中的 -Dlog4j.log.dir 也修改为自定义的日志路径
  2. 两个服务中的 bin/internal/util.sh 文件中的 KEY 值 shutdownFile,改为自定义日志路径

启动

上述步骤完成后,就可以启动了

  1. 进入 ExecutorServer 安装包路径,注意不要进到 bin 目录下,执行
    bin/start-exec.sh
  2. 进入 WebServer 安装包路径,注意不要进到 bin 目录下,执行
    bin/start-web.sh
    此时若得到提示信息说启动成功,则可以进入验证环节了